﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using Aga.Psad.Common;

namespace Aga.Psad.Mvc.Models
{
    public class ArchivoViewModel
    {
        public int Id { get; set; }
        public int AvisoId { get; set; }
        public string Nombre { get; set; }
        public string Familia { get; set; }
        public string Secuencia { get; set; }
        public string Pagina { get; set; }
        public int NumeroPagina { get; set; }
        public string Hash { get; set; }

        public static ArchivoViewModel Parse(string fileName)
        {
            fileName = fileName.ToUpper();

            FileInfo file = new FileInfo(fileName);

            var name = file.Name.Replace(".PDF", string.Empty);
            var parts = name.Split('_');
            
            if (parts.Length != 4)
                throw new FormatException("El nombre del archivo no concuerda con el patron esperado.");

            string hash = PdfHelper.GetSha1FromFile(fileName);

            return new ArchivoViewModel 
            {
                Nombre = file.Name,
                Familia = parts[1],
                Secuencia = parts[2],
                Pagina = parts[3],
                Hash = hash
            };
        }
    }
}
